
#include "gpio_init.h"

#define GPIO_OUTPUT_PIN_SEL ((1ULL << GPIO_P_SCK) | (1ULL << GPIO_ZT_EN) | (1ULL << GPIO_NBIOT_EN) | (1ULL << GPIO_NBIOT_PWK) | (1ULL << GPIO_NBIOT_RST) | (1ULL << GPIO_NBIOT_WKP) | (1ULL << GPIO_CH_EN) | (1ULL << GPIO_LED))
#define GPIO_INPUT_PIN_SEL ((1ULL << GPIO_P_DOUT) | (1ULL << GPIO_CHG) | (1ULL << GPIO_CH_INT) | (1ULL << GPIO_CH_STA) | (1ULL << GPIO_CH_PG) |  (1ULL << GPIO_GS_INT1))

void gpio_init(void)
{
    gpio_config_t io_conf;

    io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
    io_conf.mode = GPIO_MODE_OUTPUT;
    io_conf.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;
    io_conf.pull_down_en = 0;
    io_conf.pull_up_en = 1;
    gpio_config(&io_conf);
    gpio_set_level(GPIO_ZT_EN, 1);
    gpio_set_level(GPIO_NBIOT_RST, 0);
    gpio_set_level(GPIO_NBIOT_WKP, 0);
    gpio_set_level(GPIO_CH_EN, 1);
    io_conf.pin_bit_mask = GPIO_INPUT_PIN_SEL;
    io_conf.mode = GPIO_MODE_INPUT;
    io_conf.pull_up_en = 0;
    gpio_config(&io_conf);
}